                       COMMTSR for Falcon/MiG/Hornet 
                               Version 1.04
                        By: Ken "Stinger" Richardson
                            UID: [70761,301]
                       InterNet: krichar@fox.nstn.ns.ca

The COMMTSR.COM file is a TSR that will install itself in your computers
memory waiting for you to run one of Spectrum Holobytes's simulators. Using 
this TSR you will see your connection times improve greatly. During testing,
this patch completed a 2400bps direct connection in just over 2 minutes, a
57600bps V.42bis connection in just under 30 seconds. A major problem COMMTSR 
can suffer would be UART overrun errors. COMMTSR will recover from the 
occasional overrun error but if you experience problems connecting at high 
speed, try a lower baud rate. 

You will see a line extending from the bottom of the screen to the top during 
the Satellite downlink. If the line is on the left side of the screen, it is 
the RECEIVE PROGRESS indicator. If the line is on the right side of the 
screen, it is the SEND PROGRESS indicator. At the top of the receive indicator 
(and just a bit to the right) is the OVERRUN ERROR indicator. If you see a 
small square at the top of the receive bar, the UART was overrun on the last 
byte received.


**** COMMTSR and Two Player Campaign Mode ****        

After extensive testing, I have discovered why older versions of COMMTSR 
would not work in Campaign Mode and why some people experienced lock-ups after
the first H2H match. When there is music being played, there is very little
time for the CPU to service the UART. This resulted in overrun errors and
lost data. COMMTSR will attempt to recover from the occasional error but, if
the CPU can't fetch the data from the UART fast enough it makes it almost
impossible to recover. There is only one solution (other than re-writing the
sim), YOU WILL NEED A 16550A UART to play Campaign mode at high speed, and
if it locks up after the first match in H2H mode. This version of COMMTSR will 
enable the 16550's FIFO buffers for high speed communications. To give you 
an idea of how bad this problem is, consider this:  I do my testing with a
486Dx50-VLB and a 486Dx40-VLB connected with a direct (null modem) cable. If 
I install 16450 based I/O cards I get multiple overrun errors at speeds as 
low as 9600 and even 4800 baud on the answer side. After installing a 16550A
on the answer side only, I can increase the speed up to 57600 baud without
a single error. Therefore, if only one end of the connection has the 16550A
UART that end should be the answer. Ideally, both ends of the connection
should have a 16550A.
        
        If you have your modem connected to COM3 or COM4, you can tell
COMMTSR to force a connect on either of these ports by placing a /3 or /4
after typing COMMTSR. If you do use the "re-map" feature, when you enter
the COMMs screen, COM1 will be COM3 or COM2 will be COM4. For example:

        COMMTSR /3            ; This causes COM3 to be used when COM1
                                is selected on the COMMS screen.

        After you finish playing you can remove COMMTSR from memory simply by 
running it a second time.

COMMTSR will work for all versions of Falcon 3.0 after version 3.02, all         
versions of MiG-29 after version 1.01, and all versions of Hornet from
Spectrum Holobyte.

V.42bis modems:

V.42bis is a CCITT standard for data compression and error
correction. It can give a modem up to 4:1 compression with 100%
reliability. A 9600bps V.42bis modem can achieve throughput of up
to 38,400bps and a 14.4kbps V.42bis modem can go up to 57,600bps
throughput. This is done, by the modem, which compresses the data it
receives from the computer before it sends it across the phone
line on it's 9600 or 14.4k bps carrier. The receiving modem
decompresses the data before sending it to it's host computer.
All data can not be compressed the same amount. For example, text
files can be compressed a great amount while ZIP files won't compress
very much because they are already compressed. Therefore, the effective
speed of a V.42bis modem can vary from it's carrier speed (9600
or 14.4k bps) all the way up to 4 times it's carrier speed (38.4
or 57.6k bps). The way the data flow is regulated by the modem is
with FLOW CONTROL, or more specific hardware flow control
(CTS/RTS). The CTS (clear to send) line will tell the computer
when the modem is ready for data. Your comm port might be set to
57,600bps while the modem is sending data at 15,000cps, obviously
the computer must wait for the modem. So as you can see, flow
control is absolutely needed when a V.42bis connection is made
between two computers with the comm ports set to a bps rate
higher than the modem's carrier.


Important Things to Know:

1. COMMTSR does perform error checking and will recover if an error occurs.

2. COMMTSR will support modem data compression (V.42bis and MNP-5). You must 
have hardware flow control turned on (RTS/CTS). Check you modem's manual for 
the proper commands although AT&F with generally work for most modems.

3. When using COMMTSR you will NOT be able to connect with someone who is not
using COMMTSR. Both computers must run the same version of the TSR.

4. COMMTSR will support the 16550's FIFO buffer.

What to Expect from COMMTSR:

1. You will see less "jittering" in your opponents plane.
2. There will be a 30% increase in cps rate while playing.
3. The Satellite Downlink will be considerably faster if your
   UART can handle a high speed connection. (See UART
   consideration)


UART (Universal Asycronosis Receiver/Transmitter) Consideration:

A UART is the "brain" of your COMM port. It receives and sends
data to and from the modem, monitors line errors, and monitors
modem status. It will interrupt the CPU whenever data is ready so
the CPU can read every incoming byte without disrupting program
execution. What I have found while testing the original V42PATCH, is some
UARTs are not fast enough to achieve a reliable connection at
speeds over 9600 baud. For speeds over 9600 baud you may find
that you will need either a 16450 or probally a 16550 UART. These
chips are direct replacements for the old 8250 UART and are much
faster. 
 
Tips on Connecting with Falcon/MiG-29/Hornet using COMMTSR.COM:

When connecting with COMMTSR loaded, you will want
to have V.42bis turned on, also you need hardware flow control
enabled. Use your comm program to configure your modem for the
correct setup and then save your modems configuration in "Stored
Profile 0" in your modem's non-volatile memory. I found it is
also a good idea to make sure the "Extended V.42 Response Codes"
are turned off. After the proper configuration is stored in your
modem's memory, your are ready to connect. Go to the comms screen
and select 57,600bps and modem connection. Select call or answer,
whichever you and your opponent decided on. Use modem defaults
when you are asked, this is important. If you use the defaults, the Sim 
will use "Stored Profile 0" to make a connection as a result of
the ATZ command that will be sent. This is the configuration you
just saved. You should get a connect message and everything else
should work fine. Here is an example of how to setup your modem:

From TERMINAL mode in your comm program type:
AT &F                ;Return to factory configuration.
AT &Q5               ;Enable V.42bis connection.
AT &K3               ;Enable hardware flow control (CTS/RTS).
AT W0                ;Disable extended V.42 response codes.
AT &W0               ;Store in profile 0, very important.
AT &V                ;Display profile. Use this command to double
                      check your setup.

Note:  Your modem may have different commands than I have listed
here, check your modem's manual before you type these commands,
especially &Q5 and W0. Some modems use &M5 instead of &Q5. You
may even have to change some S-registers. Whatever you must do,
make sure the last thing you type is AT &W0 to store it in your
modem's memory. If you type an illegal command, your modem should
respond with ERROR, otherwise it will respond with OK.


Future Versions of COMMTSR:

I intend to continually support COMMTSR, upgrading it as future
versions of Falcon/MiG/Hornet are released. I may also add more features as
the need arises. 


Note:
This patch is not supported by Spectrum Holobyte. If you experience problems, 
contact me via Compuserve Email, the ModemGames Forum on Compuserve, or
InterNet Email.

Ken "Stinger" Richardson
krichar@fox.nstn.ns.ca
[70761,301]

P.S. Have fun!!!

